//! # RustCloud 负载均衡库
//!
//! 提供了完整的负载均衡解决方案，包括多种算法策略和智能路由功能。
//! 支持基础的轮询、随机算法，也支持高级的加权、一致性哈希等算法，
//! 以及基于性能指标的智能负载均衡。
//!
//! ## 核心特性
//!
//! * **多策略支持** - 支持多种主流的负载均衡算法
//! * **智能路由** - 基于实时性能数据的智能路由决策
//! * **会话保持** - 支持基于用户或会话的亲和性路由
//! * **健康检查** - 自动过滤不健康的服务实例
//! * **性能监控** - 实时监控各实例的响应时间和负载情况
//!
//! ## 支持的策略
//!
//! ### 基础策略
//! * **轮询 (Round Robin)** - 按顺序轮流分配请求
//! * **随机 (Random)** - 随机选择服务实例
//! * **最少连接 (Least Connections)** - 选择当前连接数最少的实例
//!
//! ### 高级策略
//! * **加权轮询 (Weighted Round Robin)** - 基于权重的轮询算法
//! * **加权随机 (Weighted Random)** - 基于权重的随机算法
//! * **一致性哈希 (Consistent Hash)** - 适用于缓存场景的一致性哈希算法
//!
//! ### 智能策略
//! * **最快响应 (Fastest Response)** - 选择响应时间最短的实例
//! * **自适应 (Adaptive)** - 基于实时性能指标的自适应算法
//! * **机器学习 (ML-based)** - 使用机器学习预测最优实例
//!
//! ## 使用示例
//!
//! ```rust
//! use rustcloud_loadbalancer::*;
//! use rustcloud_core::ServiceInstance;
//!
//! #[tokio::main]
//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
//!     // 创建服务实例列表
//!     let instances = vec![
//!         ServiceInstance::new("service1", "127.0.0.1", 8001, "http"),
//!         ServiceInstance::new("service2", "127.0.0.1", 8002, "http"),
//!         ServiceInstance::new("service3", "127.0.0.1", 8003, "http"),
//!     ];
//!     
//!     // 使用轮询策略
//!     let lb = RoundRobinLoadBalancer::new();
//!     let selected = lb.select("my-service", &instances).await?;
//!     
//!     // 使用加权轮询
//!     let weighted_lb = WeightedRoundRobinLoadBalancer::new();
//!     let selected = weighted_lb.select("my-service", &instances).await?;
//!     
//!     // 使用智能负载均衡
//!     let intelligent_lb = IntelligentLoadBalancer::new();
//!     let selected = intelligent_lb.select("my-service", &instances).await?;
//!     
//!     Ok(())
//! }
//! ```

pub mod loadbalancer;
pub mod strategies;
pub mod advanced_strategies;
pub mod intelligent;

#[cfg(test)]
mod tests;

pub use loadbalancer::*;
pub use strategies::*;
pub use advanced_strategies::*;
pub use intelligent::*;
